package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.settlement.system.common.annotation.AdmitCustomizedExpore;
import com.settlement.system.converter.*;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * yg销售退货订单明细
 *
 * @author Ximi
 * @since 2020-04-15
 */
@AdmitCustomizedExpore(name = "WP-唯品POS销售")
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9, fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class YgOrderReturn extends BaseModel implements Serializable {

    /**
     * 销售门店编码
     */
    @ExcelProperty(value = "店铺编码")
    private String shopNo;


    /**
     * 账单编码
     */
    @ExcelProperty(value = "账单编码")
    private String billNumber;


    /**
     * 类型,0-销售 1-退货
     */
    @ExcelProperty(value = "类型", converter = YgOrderTypeConvert.class)
    private Integer type;

    /**
     * 销售门店
     */
    private String shopName;

    /**
     * ygbillno相关单号
     */
    @ExcelProperty(value = "销售单号",converter = BigNumberTabFormatConvert.class)
    private String ygBillNo;

    /**
     * 销售日期
     */
    @ExcelProperty(value = "销售日期",converter = DateFormatConvert.class)
    private Date outDate;


    /**
     * 商品编号
     */
    private String itemCode;

    /**
     * 商品名称
     */
    private String itemName;

    /**
     * 商品条码
     */
    @ExcelProperty(value = "商品条码",converter = BigNumberTabFormatConvert.class)
    private String barcode;

    /**
     * 商品数量
     */
    @ExcelProperty(value = "商品数量")
    private Integer qty;

    /**
     * 结算总金额
     */
    @ExcelProperty(value = "结算总金额")
    private BigDecimal amount;


    /**
     * 品牌编码
     */
    private String brandNo;

    /**
     * 品牌名称
     */
    @ExcelProperty(value = "品牌名称")
    private String brandName;

    /**
     * 扣率,如17.00代表17.00%
     */
    @ExcelProperty(value = "扣率")
    private BigDecimal discount;

    /**
     * 系统扣费
     */
    @ExcelProperty(value = "系统扣费")
    private BigDecimal sysdeductAmount;

    /**
     * 唯品业务类型（0 唯品JITX,1 唯品JIT）
     */
    @ExcelProperty(value = "唯品业务类型", converter = WpVpTypeConvert.class)
    private Integer vpType;

    /**
     * PO单号（唯品会订单）
     */
    @ExcelProperty(value = "PO单号",converter = BigNumberTabFormatConvert.class)
    private String poNo;

    /**
     * 档期（唯品会订单）
     */
    @ExcelProperty(value = "档期")
    private String orderSchedule;



    /**
     * 商品SKU
     */
    private String skuNo;

    /**
     * 商品内码
     */
    private String itemNo;

    /**
     * 大类
     */
    private String categery;

    /**
     * 商品尺码
     */
    private String sizeNo;


    /**
     * 结算单价
     */
    private BigDecimal settlePrice;

    /**
     * 商品牌价
     */
    private BigDecimal tagPrice;

    /**
     * 商品现价
     */
    private BigDecimal salePrice;

    /**
     * 备注(销售客退明细/盘盈亏转VI)
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 数据清理备注
     */
    @ExcelProperty(value = "数据清理备注")
    private String dataProcRemark;

    /**
     * yg品牌编码
     */
    private String ygBrandNo;

    /**
     * yg品牌名称
     */
    private String ygBrandName;

    /**
     * 处理状态(0，未处理，1，正在处理中，2,处理完，3,处理异常)
     */
    private Integer status;

    /**
     * 分库字段(本部加大区)
     */
    private String shardingFlag;


    /**
     * 用于更新时作标识字段
     */
    private String updateFlag;

    /**
     * 来源类型
     */
    private String sourceType;

    /**
     * 是否回调
     */
    private String callback;

    /**
     * 发货模式
     */
    @ExcelProperty(value = "发货模式", converter = WpDeliveryTypeConvert.class)
    private Integer deliveryType;

    /**
     * 退货类型
     */
    @ExcelProperty(value = "退货类型", converter = WpReturnType.class)
    private String returnType;

    /**
     * 全局唯一Id
     */
    @ExcelProperty(value = "账单明细全局唯一ID",converter = BigNumberTabFormatConvert.class)
    private String globalId;

    /**
     * 订单编号
     */
    @ExcelProperty(value = "零售返回销售单号",converter = BigNumberTabFormatConvert.class)
    private String orderNo;
}
